home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-11-08 | 4.2 KB | 105 lines | [TEXT/R*ch] |
- Interface to CD-ROM player.
-
- This module implements an interface to the built-in cd module. The
- intention is to provide a more user-friendly interface than the
- built-in module.
-
- The module defines a class Readcd with several methods. The
- initialization of the class will try to open the CD player. This
- means that initialization will fail if the CD player is already in
- use. A RuntimeError will be raised by the cd module in that case.
-
- The way to work with this module is as follows. The user specifies
- the parts of the CD that are to be read and he specifies callback
- functions which are to be called by the system. At some point he can
- tell the system to play. The specified parts of the CD will then be
- read and the callbacks will be called.
-
- Initialization.
- ===============
-
- r = readcd.Readcd([cd-player [, mode]])
-
- The optional arguments are the name of the CD device and the mode.
- When "mode" is not specified, it defaults to 'r' (which is the only
- possible value); when "cd-player" also isn't specified, it defaults
- to "None" which indicates the default CD player.
-
- Methods.
- ========
-
- eject() -- Eject the CD from the player.
-
- reset() -- Reset the list of data stretches to be played.
-
- appendtrack(track) -- Append the specified track to the list of music
- stretches.
-
- appendstretch(first, last) -- Append the stretch from "first" to "last"
- to the list of music stretches. Both "first" and "last" can be in one
- of four forms. "None": for "first", the beginning of the CD, for
- "last" the end of the CD; a single integer: a track number--playing
- starts at the beginning of the track or ends at the end of the
- specified track; a three-tuple: the absolute time from the start of
- the CD in minutes, seconds, frames; a four-tuple: track number and
- relative time within the track in minutes, seconds, frames.
-
- settracks(tracklist) -- The argument is a list of integers. The list
- of stretches is set to argument list. The old list is discarded.
-
- setcallback(type, func, arg) -- Set a callback function for "type".
- The function will be called as func(arg, type, data) where "arg" is
- the third argument of setcallback, "type" is the type of callback,
- "data" is type-dependent data. See the CDsetcallback(3) manual page
- for more information. The possible "type" arguments are defined in
- the CD module.
-
- removecallback(type) -- Remove the callback for "type".
-
- gettrackinfo([tracklist]) -- Return a list of tuples. Each tuple
- consists of start and length information of a track. The start and
- length information consist of three-tuples with minutes, seconds and
- frames. The optional tracklist argument gives a list of interesting
- track numbers. If no tracklist is specified, information about all
- tracks is returned.
-
- getstatus() -- Return the status information of the CD.
-
- play() -- Play the preprogrammed stretches of music from the CD. When
- nothing was programmed, the whole CD is played.
-
- Specifying stretches.
- =====================
-
- There are three methods available to specify a stretch of music to be
- played. The easiest way is to use "settracklist(tracklist)" with which
- a list of tracks can be specified. "settracklist(tracklist)" is
- equivalent to the sequence
- reset()
- for track in tracklist:
- appendtrack(track)
-
- The next method is "appendtrack(track)" with which a whole track can be
- added to the list of music to be played. "appendtrack(track)" is
- equivalent to "appendstretch(track, track)".
-
- The most complete method is "appendstretch(first, last)". Using this
- method, it is possible to specify any stretch of music.
-
- When two consecutive tracks are played, it is possible to choose
- whether the pause that may be between the tracks is played as well or
- whether the pause should be skipped. When the end of a stretch is
- specified using a track number and the next stretch starts at the
- beginning of the following track and that was also specified using the
- track number (that is, both were specified as integers, not as tuples),
- the pause is played. When either value was specified using absolute
- time or track-relative time (that is, as three-tuple or as
- four-tuple), the pause will not be played.
-
- Errors.
- =======
-
- When an error occurs, an exception will be raised. Depending on where
- the error occurs, the exception may either be "readcd.Error" or
- "RuntimeError".
-